package com.seventeen.mq.proxy.server.proxy.ext;

import lombok.Data;

import java.util.Set;

/**
 * @author seventeen
 */
@Data
public abstract class BaseExtMqProducer {
    protected static final Integer MIN_DELAY_TIME_LEVEL = 1;
    protected static final Integer MAX_DELAY_TIME_LEVEL = 18;
    /**
     * ID
     */
    protected Long id;
    /**
     * 访问渠道 1:LOCAL 2:CLOUD
     */
    protected String accessChannel;
    /**
     * 访问Key
     */
    protected String accessKey;
    /**
     * 访问Secret
     */
    protected String secretKey;
    /**
     * 端点
     */
    protected String endpoints;

    /**
     * 生产代理组名
     */
    protected String producerProxyGroup;
    /**
     * 版本号
     */
    protected String version;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    protected String delFlag;

    /**
     * 绑定topic集合
     */
    private Set<String> withTopics;

    /**
     * 销毁
     */
    public abstract void destroy();

    /**
     * 初始化
     */
    public abstract void init();

    /**
     * 发送消息
     *
     * @param sendMessage 消息内容
     */
    public abstract void sendMsg(ExtSendMessage sendMessage);
}
